from typing import List, Optional, Literal

from pydantic import BaseModel

from .common import MessageAnalysisReport


class UpdateChatRequest(BaseModel):
    role: Literal["user", "assistant"]
    content: str


class UpdateChatResponse(BaseModel):
    message_id: str


class GetChatResponse(BaseModel):
    chat_id: str
    number: int
    messages: List[MessageAnalysisReport]


class CreateChatRequest(BaseModel):
    user_id: str
    mode: int
    situation: Optional[str]
